  import api from "../../utils/api";
  // 引入音频时间处理函数
  import {
    formatAudioTime
  } from '../../utils/util';
  const innerAudioContext = getApp().globalData.innerAudioContext;
  let tiemr = getApp().globalData.timer;

  // innerAudioContext.play() // 播放

  // innerAudioContext.pause() // 暂停

  // innerAudioContext.stop() // 停止
  // pages/music-player/music-player.js
  Page({

    /**
     * 页面的初始数据
     */
    data: {
      id: '',
      songDetail: {},
      isPlay: false,
      playMode: "loopPlay",
      currentPercent: 0, // 当前播放进度百分比
      currentTime: "00:00",
      totalTime: "00:00",
      rotateValue: 0, // 旋转值
      currentSrc: ""
    },
    // 获取歌曲详情
    async getSongDetail(id) {
      wx.showLoading({
        title: '数据甲加载中',
      })
      let result = await api.getSongDetailById(id)
      if (result.code === 200) {
        this.setData({
          songDetail: result.songs[0]
        })
      }
      wx.hideLoading();
    },
    // 获取歌曲链接
    async getSongUrl(id) {
      let result = await api.getSongUrlById(id);
      if (result.code === 200) {
        this.setData({
          totalTime: formatAudioTime(Math.round(result.data[0].time / 1000)),
          currentSrc: result.data[0].url
        })
        // 如果和当前播放相同
        // 关闭定时器，重新开始，不然进度条不会发生改变
        if (result.data[0].url === innerAudioContext.src) {
          clearInterval(tiemr);
          tiemr = this.timerFunciton();
          this.setData({
            isPlay: true
          })
        }
      }
    },
    // 播放歌曲
    async audioPlay() {
      // 清除定时器
      clearInterval(tiemr);
      // 获取歌曲链接
      innerAudioContext.src = this.data.currentSrc;
      // 播放歌曲
      // setTimeout(()=>{
      //   innerAudioContext.play();
      // },1000)

      innerAudioContext.play();

      this.setData({
        isPlay: true
      })
      tiemr = this.timerFunciton();
      // 把当前歌曲加入到播放列表中
      // getApp().globalData.songList.push(this.data.songDetail)
    },
    // 暂停歌曲
    audioPause() {
      if (this.data.isPlay) {
        innerAudioContext.pause();
        clearInterval(tiemr);
        this.setData({
          isPlay: false
        })
      }
    },
    // 改变播放方式
    changePlayMode() {
      if (this.data.playMode === 'randomPlay') {
        this.setData({
          playMode: 'loopPlay'
        })
      } else {
        this.setData({
          playMode: 'randomPlay'
        })
      }
    },
    // 点击进度条改变播放时间
    changePlayTime(e) {
      console.log(e);
      // 根据点击的位置判断百分比
      // 获取元素宽度
      let progressWidth;
      let that = this;
      wx.createSelectorQuery()
        .select('#progress')
        .boundingClientRect(function (rect) {
          progressWidth = rect.width
          // 播放百分比
          let percent = (e.detail.x - e.target.offsetLeft) / progressWidth
          that.setData({
            currentPercent: percent * 100,
            currentTime: formatAudioTime(innerAudioContext.duration * percent)
          })
          console.log(that.data.currentPercent);

          that.audioPlay();
          // 改变当前播放时间    
          innerAudioContext.seek(innerAudioContext.duration * percent)

        }).exec()
      // innerAudioContext.pause();
    },
    // 上一首
    prevSong() {
      wx.showLoading({
        title: '数据加载中',
      })
      let songList = getApp().globalData.songList
      let index = songList.indexOf(this.data.songDetail);
      // 停止播放
      innerAudioContext.stop();
      clearInterval(getApp().globalData.timer);
      // 修改初始值
      // this.setData({
      //   rotateValue:0
      // })
      if (index === 0 || index === -1) {
        this.setData({
          songDetail:songList[songList.length - 1]
        })
        this.getSongUrl(songList[songList.length - 1].id)
      } else {
        this.setData({
          songDetail:songList[index - 1]
        })
        this.getSongUrl(songList[index - 1].id)
      }
      // 播放歌曲
      this.audioPlay();
      wx.hideLoading();
    },
    // 下一首
    nextSong() {
      wx.showLoading({
        title: '数据加载中',
      })
      let songList = getApp().globalData.songList
      let index = songList.indexOf(this.data.songDetail);
      // 停止播放
      innerAudioContext.stop();
      clearInterval(getApp().globalData.timer);
      // 修改初始值
      // this.setData({
      //   rotateValue:0
      // })
      if (index === songList.length-1 || index === -1) {
        this.setData({
          songDetail:songList[0]
        })
        this.getSongUrl(songList[0].id)
      } else {
        this.setData({
          songDetail:songList[index + 1]
        })
        this.getSongUrl(songList[index + 1].id)
      }
      // 播放歌曲
      this.audioPlay();
      wx.hideLoading();
    },

    // 定时器方法
    timerFunciton() {
      return setInterval(() => {
        console.log("当前时间" + innerAudioContext.currentTime);
        console.log("总时间" + innerAudioContext.duration);
        if (innerAudioContext.currentTime >= innerAudioContext.duration - 1) {
          // 暂停歌曲
          this.audioPause();
          // 重置歌曲，使下一次播放从头开始
          innerAudioContext.stop();
          this.setData({
            totalTime: formatAudioTime(Math.round(innerAudioContext.duration)),
            currentTime: formatAudioTime(Math.round(innerAudioContext.currentTime)),
            currentPercent: innerAudioContext.currentTime / innerAudioContext.duration * 100,
            rotateValue: this.data.rotateValue
          })
          console.log("结束");
        } else {

          this.setData({
            totalTime: formatAudioTime(Math.round(innerAudioContext.duration)),
            currentTime: formatAudioTime(Math.round(innerAudioContext.currentTime)),
            currentPercent: innerAudioContext.currentTime / innerAudioContext.duration * 100,
            rotateValue: this.data.rotateValue + 12
          })
        }
      }, 1000)
    },
    /**
     * 生命周期函数--监听页面加载
     */
    async onLoad(options) {
      // console.log("当前时间" + innerAudioContext.currentTime);
      // console.log("总时间" + innerAudioContext.duration);

      this.setData({
        id: options.id
      })
      this.getSongDetail(options.id);
      await this.getSongUrl(options.id);
      if (options?.isPlay) {
        if (this.data.currentSrc == innerAudioContext.src) {
          return;
        }
        // 暂停播放
        clearInterval(getApp().globalData.timer)
        innerAudioContext.stop();
        this.audioPlay();
      }
    },

    /**
     * 生命周期函数--监听页面初次渲染完成
     */
    onReady() {

    },

    /**
     * 生命周期函数--监听页面显示
     */
    onShow() {

    },

    /**
     * 生命周期函数--监听页面隐藏
     */
    onHide() {

    },

    /**
     * 生命周期函数--监听页面卸载
     */
    onUnload() {

    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {

    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {

    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage() {

    }
  })